The reason for the document level allowance, expressed as a code.
請求書レベルの返金の理由コード。


About

Syntax binding
ubl:Invoice / cac:AllowanceCharge / cbc:AllowanceChargeReasonCode
Restricted Syntax Cardinality
0..1
Example
IS
UBL 2.1
XPath
/ Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ] / cbc:AllowanceChargeReasonCode
Occurrence
0..1
Datatype
AllowanceChargeReason_CodeType
UBL Definition
A mutually agreed code signifying the reason for this allowance or charge.
Namespace
cbc urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2

Semantic

Business Term

Document level allowance reason code

請求書レベルの返金の理由コード
ID
ibt-098
Description
The reason for the document level allowance, expressed as a code.
請求書レベルの返金の理由コード。
Aligned Cardinality
0..1
Semantic datatype
Code

Code list

UNCL5189
Allowance reason codes (UNCL5189 subset)
UNCL7161
Charge reason code (UNCL7161)

VERSION 1.0 RULES

Unchanged
Same as 0.9.3

VERSION 0.9.3 RULES
JP PINT 0.9.3 Shared rules
ibr-033(fatal)
Unchanged
Same as 0.9.2
ibr-cl-19(fatal)
Changed Message
[ibr-cl-19]-Coded allowance reasons (ibt-098, ibt-140) MUST belong to the UNCL 5189 code list
context
cac:AllowanceCharge[cbc:ChargeIndicator = false()]/cbc:AllowanceChargeReasonCode
test
(
  (
    not(contains(normalize-space(.), ' ')) and
    contains(' 41 42 60 62 63 64 65 66 67 68 70 71 88 95 100 102 103 104 ',
      concat(' ', normalize-space(.), ' ')
    )
  )
)
ibr-sr-30(fatal)
Changed Message
[ibr-sr-30]-Document level allowance reason (ibt-098) MUST occur maximum once
context
//cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
(count(cbc:AllowanceChargeReason) <= 1)

VERSION 0.9.2 RULE
JP PINT 0.9.2 Shared rule
ibr-033(fatal)
Still valid
[ibr-033]-Each Document level allowance (ibg-20) MUST have a Document level allowance reason (ibt-097) or a Document level allowance reason code (ibt-098).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:AllowanceChargeReason) or
exists(cbc:AllowanceChargeReasonCode)

VERSION 0.9.1 RULE
Obsoleted
Shared rule (0.9.1)
ibr-033 (fatal)
[ibr-033]-Each Document level allowance (ibg-20) MUST have a Document level allowance reason (ibt-097) or a Document level allowance reason code (ibt-098).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:AllowanceChargeReason) or
exists(cbc:AllowanceChargeReasonCode)

JP PINT 0.9 RULES
Obsoleted
Shared Rules (0.9)
ibr-33(fatal)
[ibr-33]-Each Document level allowance (ibg-20) shall have a Document level allowance reason (ibt-097) or a Document level allowance reason code (ibt-098).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] | /cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:AllowanceChargeReason) or
exists(cbc:AllowanceChargeReasonCode)

PEPPOL BIS BILLING 3.0 RULES
EN16931 model bound to UBL rules
BR-33 (fatal)
Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:AllowanceChargeReason) or
exists(cbc:AllowanceChargeReasonCode)
BR-CO-05 (fatal)
Document level allowance reason code (BT-98) and Document level allowance reason (BT-97) shall indicate the same type of allowance.
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
true()
BR-CO-21 (fatal)
Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both.
context
/ubl:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator = false()] |
/cn:CreditNote/cac:AllowanceCharge[cbc:ChargeIndicator = false()]
test
exists(cbc:AllowanceChargeReason) or
exists(cbc:AllowanceChargeReasonCode)